# -*- coding: utf-8 -*- 
# @project : 《Atcoder》
# @Author : created by bensonrachel on 2021/8/29
# @File : TPM（step3） G. Not Very Rude Substring （CF）.py


def TPM():
    l = 0
    res = 0
    cnt_rude = 0
    cnt_a = 0
    cnt_b = 0
    for r in range(n):
        if (s[r] == 'a'):
            cnt_a += 1
        elif (s[r] == 'b'):
            cnt_b += 1
            cnt_rude += cnt_a
        while (cnt_rude > c):
            if (s[l] == 'b'):
                cnt_b -= 1
            elif (s[l] == 'a'):
                cnt_a -= 1
                cnt_rude -= cnt_b
            l += 1
        res = max(res, r - l + 1)
    return res

"""
本题求的是区间中"ab"的对数不超过c，注意ab是有顺序的，a在前面，b在后面，所以a只与在它后面的b相配对，b也只与它前面的a配对
因此，设定入区间（当r右移）时，不管遇到a还是b都要加一，遇到b时cnt_rude就加上前面的cnt_a；
        发现不符合要求了，就要出区间（l右移）了；
        出区间（当l右移）时，不管遇到a还是b都要减一，遇到a时就cnt_rude就减去后面的cnt_b
        
        while循环外面的情况表示符合要求，可以多次比较大小获得最后的最大长度。
"""
# G. Not Very Rude Substring
if __name__ == "__main__":
    n, c = map(int, input().split())
    s = input()
    print(TPM())
